home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / short23.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  51.9 KB  |  1,820 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:CALL_INFIX_XOR.arguments*/
  10. void r760short(T760* C){
  11. /*IF*/if ((X662precedence((((T760*)C))->_target/*8*/))==(13)) {
  12. X662short((((T760*)C))->_target/*8*/);
  13. /*[IRF3.6short_print_feature_name*/{T760* C1=C;
  14. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T760*)C1))->_feature_name/*24*/);
  15. }/*]*/
  16. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  17. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
  18. }
  19.  else if ((4)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/))) {
  20. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
  21. }
  22. else {
  23. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
  24. }
  25. /*FI*/}
  26.  else if ((X662precedence((((T760*)C))->_target/*8*/))<(4)) {
  27. X662bracketed_short((((T760*)C))->_target/*8*/);
  28. /*[IRF3.6short_print_feature_name*/{T760* C1=C;
  29. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T760*)C1))->_feature_name/*24*/);
  30. }/*]*/
  31. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
  32. }
  33. else {
  34. X662short((((T760*)C))->_target/*8*/);
  35. /*[IRF3.6short_print_feature_name*/{T760* C1=C;
  36. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T760*)C1))->_feature_name/*24*/);
  37. }/*]*/
  38. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/);
  39. }
  40. /*FI*/}
  41. T0* r760add_comment(T760* C,T0* a1){
  42. T0* R=NULL;
  43. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  44. R=(T0*)C;
  45. }
  46. else {
  47. {T529*n=malloc(sizeof(*n));
  48. *n=M529;
  49. r529make(n,(T0*)C,a1);
  50. R=(T0*)n;
  51. }
  52. }
  53. /*FI*/return R;
  54. }
  55. int r760to_integer(T760* C){
  56. int R=0;
  57. r760error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  58. return R;
  59. }
  60. void r760bracketed_short(T760* C){
  61. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  62. r760short(C);
  63. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  64. }
  65. int r760is_a(T760* C,T0* a1){
  66. int R=0;
  67. R=X291is_a(X291run_type((((T760*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  68. /*IF*/if (!(R)) {
  69. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  70. r760error(X662start_position(a1),((T0*)ms4_662));
  71. }
  72. /*FI*/return R;
  73. }
  74. /*No:CALL_INFIX_XOR.is_current*/
  75. void r760make(T760* C,T0* a1,T0* a2,T0* a3){
  76. T0* _eal=NULL;
  77. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  78. r683add_position(a2);
  79. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  80. r683fatal_error(((T683*)(oBC364eh)),b1);
  81. }/*]*/
  82. }
  83. /*FI*/{T454*n=malloc(sizeof(*n));
  84. *n=M454;
  85. r454make(n,r760operator(),a2);
  86. C->_feature_name=(T0*)n;
  87. }
  88. {T431*n=malloc(sizeof(*n));
  89. *n=M431;
  90. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  91. /*]*/
  92. _eal=(T0*)n;
  93. }
  94. r760make_call_1(C,a1,(((T760*)C))->_feature_name/*24*/,_eal);
  95. }
  96. /*No:CALL_INFIX_XOR.nb_errors*/
  97. /*No:CALL_INFIX_XOR.feature_name*/
  98. /*No:CALL_INFIX_XOR.fz_iinaiv*/
  99. /*No:CALL_INFIX_XOR.run_feature*/
  100. /*No:CALL_INFIX_XOR.start_position*/
  101. /*No:CALL_INFIX_XOR.target*/
  102. /*No:CALL_INFIX_XOR.precedence*/
  103. T0* r760to_runnable(T760* C,T0* a1){
  104. T0* R=NULL;
  105. T0* _tla=NULL;
  106. T0* _a=NULL;
  107. /*IF*/if (((((T760*)C))->_current_type/*4*/)==((void*)(NULL))) {
  108. r760to_runnable_0(C,a1);
  109. _a=r431to_runnable(((T431*)((((T760*)C))->_arguments/*20*/)),a1);
  110. /*IF*/if ((_a)==((void*)(NULL))) {
  111. r760error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  112. }
  113. else {
  114. C->_arguments=_a;
  115. }
  116. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  117. r431match_with(((T431*)((((T760*)C))->_arguments/*20*/)),(((T760*)C))->_run_feature/*12*/);
  118. }
  119. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  120. _tla=(((T760*)C))->_result_type/*16*/;
  121. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  122. case 239: 
  123. break;
  124. default:
  125. _tla=NULL;
  126. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  127. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*20*/)))/*)*/));
  128. }
  129. /*FI*/}
  130. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  131. R=(T0*)C;
  132. }
  133. /*FI*/}
  134. else {
  135. R=r760twin(C);
  136. /*[IRF3.3set_current_type*/((((T760*)(((T760*)R))))->_current_type)=(NULL);
  137. /*]*/
  138. R=r760to_runnable(((T760*)R),a1);
  139. }
  140. /*FI*/return R;
  141. }
  142. /*No:CALL_INFIX_XOR.short_print_feature_name*/
  143. /*No:CALL_INFIX_XOR.result_type*/
  144. T0* r760twin(T760* C){
  145. T0* R=NULL;
  146. R=malloc(sizeof(*C));
  147. *((T760*)R)=*C;
  148. return R;
  149. }
  150. /*No:CALL_INFIX_XOR.set_current_type*/
  151. T0* r760operator(void){
  152. T0* R=NULL;
  153. R=((T0*)ms50_473);
  154. return R;
  155. }
  156. /*No:CALL_INFIX_XOR.atomic_precedence*/
  157. /*No:CALL_INFIX_XOR.current_type*/
  158. void r760make_call_1(T760* C,T0* a1,T0* a2,T0* a3){
  159. C->_target=a1;
  160. C->_feature_name=a2;
  161. C->_arguments=a3;
  162. }
  163. /*No:CALL_INFIX_XOR.is_manifest_string*/
  164. /*No:CALL_INFIX_XOR.is_void*/
  165. /*No:CALL_INFIX_XOR.us_xor*/
  166. void r760to_runnable_0(T760* C,T0* a1){
  167. C->_current_type=a1;
  168. r760cpc_to_runnable(C,a1);
  169. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T760*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  170. /*IF*/if (((((T760*)C))->_result_type/*16*/)==((void*)(NULL))) {
  171. r683add_position(X496start_position((((T760*)C))->_run_feature/*12*/));
  172. r760error((((T454*)((T454*)((((T760*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  173. }
  174.  else if (X291is_like_current((((T760*)C))->_result_type/*16*/)) {
  175. C->_result_type=X662result_type((((T760*)C))->_target/*8*/);
  176. }
  177. /*FI*/}
  178. void r760cpc_to_runnable(T760* C,T0* a1){
  179. T0* _rc=NULL;
  180. T0* _t=NULL;
  181. _t=X662to_runnable((((T760*)C))->_target/*8*/,a1);
  182. /*IF*/if ((_t)==((void*)(NULL))) {
  183. r683add_position(X662start_position((((T760*)C))->_target/*8*/));
  184. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  185. r683fatal_error(((T683*)(oBC364eh)),b1);
  186. }/*]*/
  187. }
  188. /*FI*/C->_target=_t;
  189. _rc=X291run_class(X662result_type((((T760*)C))->_target/*8*/));
  190. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  191. r576update((((T760*)C))->_target/*8*/,(((T760*)C))->_run_feature/*12*/);
  192. }
  193. void r760error(T0* a1,T0* a2){
  194. r683add_position(a1);
  195. r683error(((T683*)(oBC364eh)),a2);
  196. }
  197. /*No:CALL_INFIX_XOR.fatal_error*/
  198. /*No:CALL_INFIX_XOR.fz_bad_argument*/
  199. void r760short_target(T760* C){
  200. r760bracketed_short(C);
  201. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  202. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  203. }/*]*/
  204. }
  205. /*No:CALL_INFIX_XOR.arg1*/
  206. void r669short(T669* C){
  207. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  208. /*[IRF3.6short_hook*/{T669* C1=C;
  209. r580a_class_name(((T580*)(oBC364short_print)),(((T669*)C1))->_base_class_name/*4*/);
  210. }/*]*/
  211. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  212. }
  213. int r669has_creation(T669* C,T0* a1){
  214. int R=0;
  215. r683add_position(X776start_position(a1));
  216. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_669));
  217. return R;
  218. }
  219. /*No:TYPE_ANY.is_anchored*/
  220. /*No:TYPE_ANY.is_array*/
  221. int r669is_a(T669* C,T0* a1){
  222. int R=0;
  223. /*IF*/if (X291is_any(a1)) {
  224. R=1;
  225. }
  226. else {
  227. R=r605is_subclass_of(((T605*)(r669base_class(C))),X291base_class(a1));
  228. }
  229. /*FI*//*IF*/if (!(R)) {
  230. r683add_type((T0*)C,((T0*)ms71_470));
  231. r683add_type(a1,((T0*)ms67_470));
  232. }
  233. /*FI*/return R;
  234. }
  235. /*No:TYPE_ANY.run_type*/
  236. /*No:TYPE_ANY.is_pointer*/
  237. /*No:TYPE_ANY.is_string*/
  238. /*No:TYPE_ANY.is_like_feature*/
  239. /*No:TYPE_ANY.is_like_current*/
  240. void r669make(T669* C,T0* a1){
  241. {T451*n=malloc(sizeof(*n));
  242. *n=M451;
  243. r451make(n,((T0*)ms1_473),a1);
  244. C->_base_class_name=(T0*)n;
  245. }
  246. }
  247. /*No:TYPE_ANY.nb_errors*/
  248. int fBC669check_type=0;
  249. void r669check_type(T669* C){
  250. if (fBC669check_type==0){
  251. T0* _rc=NULL;
  252. T0* _bc=NULL;
  253. fBC669check_type=1;
  254. _bc=r669base_class(C);
  255. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  256. _rc=r669run_class(C);
  257. }
  258. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  259. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  260. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_669));
  261. }
  262. /*FI*/}
  263. /*FI*/}}
  264. /*No:TYPE_ANY.start_position*/
  265. /*No:TYPE_ANY.fz_inako*/
  266. /*No:TYPE_ANY.is_character*/
  267. T0* r669written_mark(void){
  268. T0* R=NULL;
  269. R=((T0*)ms1_473);
  270. return R;
  271. }
  272. /*No:TYPE_ANY.is_run_type*/
  273. T0* r669to_runnable(T669* C,T0* a1){
  274. T0* R=NULL;
  275. R=(T0*)C;
  276. r669check_type(C);
  277. return R;
  278. }
  279. T0* r669generic_list(T669* C){
  280. T0* R=NULL;
  281. r669fatal_error_generic_list(C);
  282. return R;
  283. }
  284. /*No:TYPE_ANY.is_formal_generic*/
  285. /*No:TYPE_ANY.is_real*/
  286. /*No:TYPE_ANY.is_bit*/
  287. void r669fatal_error_generic_list(T669* C){
  288. r683add_type((T0*)C,((T0*)ms12_291));
  289. r683print_as_fatal_error(((T683*)(oBC364eh)));
  290. }
  291. /*No:TYPE_ANY.smallest_ancestor*/
  292. /*No:TYPE_ANY.is_boolean*/
  293. /*No:TYPE_ANY.is_double*/
  294. T0* r669run_class(T669* C){
  295. T0* R=NULL;
  296. R=r604run_class((T0*)C);
  297. return R;
  298. }
  299. T0* r669run_time_mark(void){
  300. T0* R=NULL;
  301. R=((T0*)ms1_473);
  302. return R;
  303. }
  304. int r669is_a_in(T669* C,T0* a1,T0* a2){
  305. int R=0;
  306. T0* _ct=NULL;
  307. T0* _t2=NULL;
  308. T0* _t1=NULL;
  309. /*IF*/if ((r669written_mark())==((void*)(X291written_mark(a1)))) {
  310. R=1;
  311. }
  312. else {
  313. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  314. _t1=r669to_runnable(C,_ct);
  315. _t2=X291to_runnable(a1,_ct);
  316. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  317. R=1;
  318. }
  319. else {
  320. R=X291is_a(_t1,_t2);
  321. }
  322. /*FI*/}
  323. /*FI*/return R;
  324. }
  325. T0* r669look_up_for(T669* C,T0* a1,T0* a2){
  326. T0* R=NULL;
  327. R=r605look_up_for(((T605*)(r669base_class(C))),a1,a2);
  328. return R;
  329. }
  330. /*No:TYPE_ANY.expanded_initializer*/
  331. /*No:TYPE_ANY.fz_dot*/
  332. /*No:TYPE_ANY.is_generic*/
  333. /*No:TYPE_ANY.used_as_reference*/
  334. /*No:TYPE_ANY.is_reference*/
  335. void r669error(T0* a1,T0* a2){
  336. r683add_position(a1);
  337. r683error(((T683*)(oBC364eh)),a2);
  338. }
  339. T0* r669base_class(T669* C){
  340. T0* R=NULL;
  341. T0* _bcn=NULL;
  342. _bcn=(((T669*)C))->_base_class_name/*4*/;
  343. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  344. R=r451base_class(((T451*)_bcn));
  345. }
  346. else {
  347. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  348. r7append(((T7*)(oBC683explanation)),b1);
  349. }/*]*/
  350. r683add_type((T0*)C,((T0*)ms67_470));
  351. r683print_as_fatal_error(((T683*)(oBC364eh)));
  352. }
  353. /*FI*/return R;
  354. }
  355. /*No:TYPE_ANY.short_hook*/
  356. /*No:TYPE_ANY.is_any*/
  357. /*No:TYPE_ANY.base_class_name*/
  358. /*No:TYPE_ANY.is_expanded*/
  359. /*No:TYPE_ANY.is_basic_eiffel_expanded*/
  360. /*No:TYPE_ANY.is_none*/
  361. /*No:TYPE_ANY.is_integer*/
  362. /*No:TYPE_ANY.us_any*/
  363. /*No:CALL_INFIX_FREEOP.arguments*/
  364. void r534short(T534* C){
  365. /*IF*/if ((X662precedence((((T534*)C))->_target/*8*/))==(13)) {
  366. X662short((((T534*)C))->_target/*8*/);
  367. /*[IRF3.6short_print_feature_name*/{T534* C1=C;
  368. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T534*)C1))->_feature_name/*24*/);
  369. }/*]*/
  370. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  371. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
  372. }
  373.  else if ((10)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/))) {
  374. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
  375. }
  376. else {
  377. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
  378. }
  379. /*FI*/}
  380.  else if ((X662precedence((((T534*)C))->_target/*8*/))<(10)) {
  381. X662bracketed_short((((T534*)C))->_target/*8*/);
  382. /*[IRF3.6short_print_feature_name*/{T534* C1=C;
  383. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T534*)C1))->_feature_name/*24*/);
  384. }/*]*/
  385. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
  386. }
  387. else {
  388. X662short((((T534*)C))->_target/*8*/);
  389. /*[IRF3.6short_print_feature_name*/{T534* C1=C;
  390. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T534*)C1))->_feature_name/*24*/);
  391. }/*]*/
  392. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/);
  393. }
  394. /*FI*/}
  395. T0* r534add_comment(T534* C,T0* a1){
  396. T0* R=NULL;
  397. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  398. R=(T0*)C;
  399. }
  400. else {
  401. {T529*n=malloc(sizeof(*n));
  402. *n=M529;
  403. r529make(n,(T0*)C,a1);
  404. R=(T0*)n;
  405. }
  406. }
  407. /*FI*/return R;
  408. }
  409. int r534to_integer(T534* C){
  410. int R=0;
  411. r534error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  412. return R;
  413. }
  414. void r534bracketed_short(T534* C){
  415. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  416. r534short(C);
  417. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  418. }
  419. int r534is_a(T534* C,T0* a1){
  420. int R=0;
  421. R=X291is_a(X291run_type((((T534*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  422. /*IF*/if (!(R)) {
  423. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  424. r534error(X662start_position(a1),((T0*)ms4_662));
  425. }
  426. /*FI*/return R;
  427. }
  428. /*No:CALL_INFIX_FREEOP.is_current*/
  429. void r534make(T534* C,T0* a1,T0* a2,T0* a3){
  430. T0* _eal=NULL;
  431. {T431*n=malloc(sizeof(*n));
  432. *n=M431;
  433. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  434. /*]*/
  435. _eal=(T0*)n;
  436. }
  437. r534make_call_1(C,a1,a2,_eal);
  438. }
  439. /*No:CALL_INFIX_FREEOP.nb_errors*/
  440. /*No:CALL_INFIX_FREEOP.feature_name*/
  441. /*No:CALL_INFIX_FREEOP.fz_iinaiv*/
  442. /*No:CALL_INFIX_FREEOP.run_feature*/
  443. /*No:CALL_INFIX_FREEOP.start_position*/
  444. /*No:CALL_INFIX_FREEOP.target*/
  445. /*No:CALL_INFIX_FREEOP.precedence*/
  446. T0* r534to_runnable(T534* C,T0* a1){
  447. T0* R=NULL;
  448. T0* _tla=NULL;
  449. T0* _a=NULL;
  450. /*IF*/if (((((T534*)C))->_current_type/*4*/)==((void*)(NULL))) {
  451. r534to_runnable_0(C,a1);
  452. _a=r431to_runnable(((T431*)((((T534*)C))->_arguments/*20*/)),a1);
  453. /*IF*/if ((_a)==((void*)(NULL))) {
  454. r534error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  455. }
  456. else {
  457. C->_arguments=_a;
  458. }
  459. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  460. r431match_with(((T431*)((((T534*)C))->_arguments/*20*/)),(((T534*)C))->_run_feature/*12*/);
  461. }
  462. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  463. _tla=(((T534*)C))->_result_type/*16*/;
  464. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  465. case 239: 
  466. break;
  467. default:
  468. _tla=NULL;
  469. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  470. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T534*)C))->_arguments/*20*/)))/*)*/));
  471. }
  472. /*FI*/}
  473. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  474. R=(T0*)C;
  475. }
  476. /*FI*/}
  477. else {
  478. R=r534twin(C);
  479. /*[IRF3.3set_current_type*/((((T534*)(((T534*)R))))->_current_type)=(NULL);
  480. /*]*/
  481. R=r534to_runnable(((T534*)R),a1);
  482. }
  483. /*FI*/return R;
  484. }
  485. /*No:CALL_INFIX_FREEOP.short_print_feature_name*/
  486. /*No:CALL_INFIX_FREEOP.result_type*/
  487. T0* r534twin(T534* C){
  488. T0* R=NULL;
  489. R=malloc(sizeof(*C));
  490. *((T534*)R)=*C;
  491. return R;
  492. }
  493. /*No:CALL_INFIX_FREEOP.set_current_type*/
  494. /*No:CALL_INFIX_FREEOP.atomic_precedence*/
  495. /*No:CALL_INFIX_FREEOP.current_type*/
  496. void r534make_call_1(T534* C,T0* a1,T0* a2,T0* a3){
  497. C->_target=a1;
  498. C->_feature_name=a2;
  499. C->_arguments=a3;
  500. }
  501. /*No:CALL_INFIX_FREEOP.is_manifest_string*/
  502. /*No:CALL_INFIX_FREEOP.is_void*/
  503. void r534to_runnable_0(T534* C,T0* a1){
  504. C->_current_type=a1;
  505. r534cpc_to_runnable(C,a1);
  506. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T534*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  507. /*IF*/if (((((T534*)C))->_result_type/*16*/)==((void*)(NULL))) {
  508. r683add_position(X496start_position((((T534*)C))->_run_feature/*12*/));
  509. r534error((((T454*)((T454*)((((T534*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  510. }
  511.  else if (X291is_like_current((((T534*)C))->_result_type/*16*/)) {
  512. C->_result_type=X662result_type((((T534*)C))->_target/*8*/);
  513. }
  514. /*FI*/}
  515. void r534cpc_to_runnable(T534* C,T0* a1){
  516. T0* _rc=NULL;
  517. T0* _t=NULL;
  518. _t=X662to_runnable((((T534*)C))->_target/*8*/,a1);
  519. /*IF*/if ((_t)==((void*)(NULL))) {
  520. r683add_position(X662start_position((((T534*)C))->_target/*8*/));
  521. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  522. r683fatal_error(((T683*)(oBC364eh)),b1);
  523. }/*]*/
  524. }
  525. /*FI*/C->_target=_t;
  526. _rc=X291run_class(X662result_type((((T534*)C))->_target/*8*/));
  527. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  528. r576update((((T534*)C))->_target/*8*/,(((T534*)C))->_run_feature/*12*/);
  529. }
  530. void r534error(T0* a1,T0* a2){
  531. r683add_position(a1);
  532. r683error(((T683*)(oBC364eh)),a2);
  533. }
  534. /*No:CALL_INFIX_FREEOP.fatal_error*/
  535. /*No:CALL_INFIX_FREEOP.fz_bad_argument*/
  536. void r534short_target(T534* C){
  537. r534bracketed_short(C);
  538. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  539. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  540. }/*]*/
  541. }
  542. /*No:CALL_INFIX_FREEOP.arg1*/
  543. /*No:CALL_N.arguments*/
  544. void r915short(T915* C){
  545. X662short_target((((T915*)C))->_target/*8*/);
  546. X776short((((T915*)C))->_feature_name/*12*/);
  547. r431short(((T431*)((((T915*)C))->_arguments/*24*/)));
  548. }
  549. T0* r915add_comment(T915* C,T0* a1){
  550. T0* R=NULL;
  551. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  552. R=(T0*)C;
  553. }
  554. else {
  555. {T529*n=malloc(sizeof(*n));
  556. *n=M529;
  557. r529make(n,(T0*)C,a1);
  558. R=(T0*)n;
  559. }
  560. }
  561. /*FI*/return R;
  562. }
  563. int r915to_integer(T915* C){
  564. int R=0;
  565. r915error(r915start_position(C),((T0*)ms69_470));
  566. return R;
  567. }
  568. void r915bracketed_short(T915* C){
  569. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  570. r915short(C);
  571. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  572. }
  573. int r915is_a(T915* C,T0* a1){
  574. int R=0;
  575. R=X291is_a(X291run_type((((T915*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  576. /*IF*/if (!(R)) {
  577. r683add_position(r915start_position(C));
  578. r915error(X662start_position(a1),((T0*)ms4_662));
  579. }
  580. /*FI*/return R;
  581. }
  582. /*No:CALL_N.fz_bad_arguments*/
  583. /*No:CALL_N.is_current*/
  584. void r915make(T915* C,T0* a1,T0* a2,T0* a3){
  585. C->_target=a1;
  586. C->_feature_name=a2;
  587. C->_arguments=a3;
  588. }
  589. /*No:CALL_N.nb_errors*/
  590. /*No:CALL_N.feature_name*/
  591. /*No:CALL_N.fz_iinaiv*/
  592. /*No:CALL_N.dot_precedence*/
  593. /*No:CALL_N.run_feature*/
  594. T0* r915start_position(T915* C){
  595. T0* R=NULL;
  596. R=X776start_position((((T915*)C))->_feature_name/*12*/);
  597. return R;
  598. }
  599. /*No:CALL_N.target*/
  600. /*No:CALL_N.precedence*/
  601. T0* r915to_runnable(T915* C,T0* a1){
  602. T0* R=NULL;
  603. T0* _e=NULL;
  604. T0* _tla=NULL;
  605. T0* _a=NULL;
  606. /*IF*/if (((((T915*)C))->_current_type/*4*/)==((void*)(NULL))) {
  607. r915to_runnable_0(C,a1);
  608. _a=r431to_runnable(((T431*)((((T915*)C))->_arguments/*24*/)),a1);
  609. /*IF*/if ((_a)==((void*)(NULL))) {
  610. r915error(r431start_position(((T431*)((((T915*)C))->_arguments/*24*/))),((T0*)ms56_470));
  611. }
  612. else {
  613. C->_arguments=_a;
  614. }
  615. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  616. r431match_with(((T431*)((((T915*)C))->_arguments/*24*/)),(((T915*)C))->_run_feature/*16*/);
  617. }
  618. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  619. _tla=(((T915*)C))->_result_type/*20*/;
  620. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  621. case 239: 
  622. break;
  623. default:
  624. _tla=NULL;
  625. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  626. _e=r431expression(((T431*)((((T915*)C))->_arguments/*24*/)),/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*16*//*)*/);
  627. C->_result_type=X291run_type(X662result_type(_e));
  628. }
  629. /*FI*/}
  630. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  631. R=(T0*)C;
  632. }
  633. /*FI*/}
  634. else {
  635. R=r915twin(C);
  636. /*[IRF3.3set_current_type*/((((T915*)(((T915*)R))))->_current_type)=(NULL);
  637. /*]*/
  638. R=r915to_runnable(((T915*)R),a1);
  639. }
  640. /*FI*/return R;
  641. }
  642. /*No:CALL_N.result_type*/
  643. T0* r915twin(T915* C){
  644. T0* R=NULL;
  645. R=malloc(sizeof(*C));
  646. *((T915*)R)=*C;
  647. return R;
  648. }
  649. /*No:CALL_N.set_current_type*/
  650. /*No:CALL_N.current_type*/
  651. /*No:CALL_N.is_manifest_string*/
  652. /*No:CALL_N.is_void*/
  653. void r915to_runnable_0(T915* C,T0* a1){
  654. C->_current_type=a1;
  655. r915cpc_to_runnable(C,a1);
  656. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T915*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  657. /*IF*/if (((((T915*)C))->_result_type/*20*/)==((void*)(NULL))) {
  658. r683add_position(X496start_position((((T915*)C))->_run_feature/*16*/));
  659. r915error(X776start_position((((T915*)C))->_feature_name/*12*/),((T0*)ms1_295));
  660. }
  661.  else if (X291is_like_current((((T915*)C))->_result_type/*20*/)) {
  662. C->_result_type=X662result_type((((T915*)C))->_target/*8*/);
  663. }
  664. /*FI*/}
  665. void r915cpc_to_runnable(T915* C,T0* a1){
  666. T0* _rc=NULL;
  667. T0* _t=NULL;
  668. _t=X662to_runnable((((T915*)C))->_target/*8*/,a1);
  669. /*IF*/if ((_t)==((void*)(NULL))) {
  670. r683add_position(X662start_position((((T915*)C))->_target/*8*/));
  671. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  672. r683fatal_error(((T683*)(oBC364eh)),b1);
  673. }/*]*/
  674. }
  675. /*FI*/C->_target=_t;
  676. _rc=X291run_class(X662result_type((((T915*)C))->_target/*8*/));
  677. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  678. r576update((((T915*)C))->_target/*8*/,(((T915*)C))->_run_feature/*16*/);
  679. }
  680. void r915error(T0* a1,T0* a2){
  681. r683add_position(a1);
  682. r683error(((T683*)(oBC364eh)),a2);
  683. }
  684. /*No:CALL_N.fatal_error*/
  685. void r915short_target(T915* C){
  686. r915short(C);
  687. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  688. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  689. }/*]*/
  690. }
  691. void r999error_comparison(T999* C,T0* a1){
  692. r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  693. /*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
  694. r7append(((T7*)(oBC683explanation)),b1);
  695. }/*]*/
  696. /*[IRF3.6append*/{T0* b1=a1;
  697. r7append(((T7*)(oBC683explanation)),b1);
  698. }/*]*/
  699. /*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
  700. r7append(((T7*)(oBC683explanation)),b1);
  701. }/*]*/
  702. r683add_type((((T999*)C))->_current_type/*4*/,((T0*)ms67_470));
  703. r683print_as_error(((T683*)(oBC364eh)));
  704. }
  705. /*No:CALL_INFIX_EQ.arguments*/
  706. void r999short(T999* C){
  707. /*IF*/if ((X662precedence((((T999*)C))->_target/*8*/))==(13)) {
  708. X662short((((T999*)C))->_target/*8*/);
  709. /*[IRF3.6short_print_feature_name*/{T999* C1=C;
  710. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T999*)C1))->_feature_name/*20*/);
  711. }/*]*/
  712. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))==(13)) {
  713. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  714. }
  715.  else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/))) {
  716. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  717. }
  718. else {
  719. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  720. }
  721. /*FI*/}
  722.  else if ((X662precedence((((T999*)C))->_target/*8*/))<(6)) {
  723. X662bracketed_short((((T999*)C))->_target/*8*/);
  724. /*[IRF3.6short_print_feature_name*/{T999* C1=C;
  725. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T999*)C1))->_feature_name/*20*/);
  726. }/*]*/
  727. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  728. }
  729. else {
  730. X662short((((T999*)C))->_target/*8*/);
  731. /*[IRF3.6short_print_feature_name*/{T999* C1=C;
  732. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T999*)C1))->_feature_name/*20*/);
  733. }/*]*/
  734. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  735. }
  736. /*FI*/}
  737. T0* r999add_comment(T999* C,T0* a1){
  738. T0* R=NULL;
  739. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  740. R=(T0*)C;
  741. }
  742. else {
  743. {T529*n=malloc(sizeof(*n));
  744. *n=M529;
  745. r529make(n,(T0*)C,a1);
  746. R=(T0*)n;
  747. }
  748. }
  749. /*FI*/return R;
  750. }
  751. int r999to_integer(T999* C){
  752. int R=0;
  753. r999error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  754. return R;
  755. }
  756. void r999bracketed_short(T999* C){
  757. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  758. r999short(C);
  759. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  760. }
  761. int r999is_a(T999* C,T0* a1){
  762. int R=0;
  763. R=X291is_a(X291run_type((((T999*)C))->_result_type/*12*/),X291run_type(X662result_type(a1)));
  764. /*IF*/if (!(R)) {
  765. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  766. r999error(X662start_position(a1),((T0*)ms4_662));
  767. }
  768. /*FI*/return R;
  769. }
  770. /*No:CALL_INFIX_EQ.is_current*/
  771. T0* r999type_boolean(void){
  772. if (fBC364type_boolean==0){
  773. T0* R=NULL;
  774. fBC364type_boolean=1;
  775. {T707*n=malloc(sizeof(*n));
  776. *n=M707;
  777. r707make(n,NULL);
  778. R=(T0*)n;
  779. }
  780. oBC364type_boolean=R;}
  781. return oBC364type_boolean;}
  782. void r999make(T999* C,T0* a1,T0* a2,T0* a3){
  783. T0* _eal=NULL;
  784. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  785. r683add_position(a2);
  786. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  787. r683fatal_error(((T683*)(oBC364eh)),b1);
  788. }/*]*/
  789. }
  790. /*FI*/{T454*n=malloc(sizeof(*n));
  791. *n=M454;
  792. r454make(n,r999operator(),a2);
  793. C->_feature_name=(T0*)n;
  794. }
  795. {T431*n=malloc(sizeof(*n));
  796. *n=M431;
  797. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  798. /*]*/
  799. _eal=(T0*)n;
  800. }
  801. r999make_call_1(C,a1,(((T999*)C))->_feature_name/*20*/,_eal);
  802. }
  803. /*No:CALL_INFIX_EQ.nb_errors*/
  804. void r999to_runnable_equal_not_equal(T999* C,T0* a1){
  805. T0* _at=NULL;
  806. T0* _tt=NULL;
  807. T0* _a=NULL;
  808. T0* _t=NULL;
  809. C->_current_type=a1;
  810. _t=X662to_runnable((((T999*)C))->_target/*8*/,a1);
  811. /*IF*/if ((_t)==((void*)(NULL))) {
  812. r999error(X662start_position((((T999*)C))->_target/*8*/),((T0*)ms1_841));
  813. }
  814. else {
  815. C->_target=_t;
  816. }
  817. /*FI*/_a=r431to_runnable(((T431*)((((T999*)C))->_arguments/*16*/)),a1);
  818. /*IF*/if ((_a)!=((void*)(NULL))) {
  819. C->_arguments=_a;
  820. }
  821. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  822. _tt=X291run_type(X662result_type((((T999*)C))->_target/*8*/));
  823. _at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/));
  824. /*IF*/if (X291is_none(_tt)) {
  825. /*IF*/if (X291is_expanded(_at)) {
  826. X291used_as_reference(_at);
  827. }
  828. /*FI*/}
  829.  else if (X291is_none(_at)) {
  830. /*IF*/if (X291is_expanded(_tt)) {
  831. X291used_as_reference(_tt);
  832. }
  833. /*FI*/}
  834.  else if (X291is_reference(_tt)) {
  835. /*IF*/if (X291is_reference(_at)) {
  836. /*IF*/if (X291is_a(_tt,_at)) {
  837. }
  838. else {
  839. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  840. /*]*/
  841. r51clear(((T51*)(oBC683positions)));
  842. /*]*/
  843. /*IF*/if (X291is_a(_at,_tt)) {
  844. }
  845. else {
  846. r999error_comparison(C,((T0*)ms2_841));
  847. }
  848. /*FI*/}
  849. /*FI*/}
  850.  else if (!(X291is_a(_at,_tt))) {
  851. r999error_comparison(C,((T0*)ms3_841));
  852. }
  853. else {
  854. X291used_as_reference(_at);
  855. }
  856. /*FI*/}
  857. else {
  858. /*IF*/if (X291is_expanded(_at)) {
  859. /*IF*/if (X291is_basic_eiffel_expanded(_at)) {
  860. /*IF*/if (X291is_a(_tt,_at)) {
  861. }
  862. else {
  863. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  864. /*]*/
  865. r51clear(((T51*)(oBC683positions)));
  866. /*]*/
  867. /*IF*/if (X291is_a(_at,_tt)) {
  868. }
  869. else {
  870. r999error_comparison(C,((T0*)ms4_841));
  871. }
  872. /*FI*/}
  873. /*FI*/}
  874.  else if (X291is_bit(_tt)) {
  875. r999bit_limitation(C,_tt,_at);
  876. }
  877.  else if (!(X291is_a(_at,_tt))) {
  878. r999error_comparison(C,((T0*)ms5_841));
  879. }
  880. /*FI*/}
  881.  else if (!(X291is_a(_tt,_at))) {
  882. r999error_comparison(C,((T0*)ms6_841));
  883. }
  884. else {
  885. X291used_as_reference(_tt);
  886. }
  887. /*FI*/}
  888. /*FI*/}
  889. /*FI*/}
  890. /*No:CALL_INFIX_EQ.feature_name*/
  891. /*No:CALL_INFIX_EQ.fz_iinaiv*/
  892. /*No:CALL_INFIX_EQ.start_position*/
  893. /*No:CALL_INFIX_EQ.target*/
  894. /*No:CALL_INFIX_EQ.precedence*/
  895. T0* r999to_runnable(T999* C,T0* a1){
  896. T0* R=NULL;
  897. /*IF*/if (((((T999*)C))->_current_type/*4*/)==((void*)(NULL))) {
  898. r999to_runnable_equal_not_equal(C,a1);
  899. C->_result_type=r999type_boolean();
  900. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  901. R=(T0*)C;
  902. }
  903. /*FI*/}
  904. else {
  905. {T999*n=malloc(sizeof(*n));
  906. *n=M999;
  907. r999make(n,(((T999*)C))->_target/*8*/,(((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*16*/)))/*)*/);
  908. R=(T0*)n;
  909. }
  910. R=r999to_runnable(((T999*)R),a1);
  911. }
  912. /*FI*/return R;
  913. }
  914. /*No:CALL_INFIX_EQ.short_print_feature_name*/
  915. /*No:CALL_INFIX_EQ.result_type*/
  916. T0* r999operator(void){
  917. T0* R=NULL;
  918. R=((T0*)ms31_473);
  919. return R;
  920. }
  921. /*No:CALL_INFIX_EQ.atomic_precedence*/
  922. void r999bit_limitation(T999* C,T0* a1,T0* a2){
  923. T0* _b2=NULL;
  924. T0* _b1=NULL;
  925. _b1=a1;
  926. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  927. case 549: case 558: 
  928. break;
  929. default:
  930. _b1=NULL;
  931. };_b2=a2;
  932. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  933. case 549: case 558: 
  934. break;
  935. default:
  936. _b2=NULL;
  937. };/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
  938. r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  939. /*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
  940. r7append(((T7*)(oBC683explanation)),b1);
  941. }/*]*/
  942. r683add_type(_b1,((T0*)ms10_841));
  943. r683add_type(_b2,((T0*)ms11_841));
  944. r683print_as_fatal_error(((T683*)(oBC364eh)));
  945. }
  946. /*FI*/}
  947. /*No:CALL_INFIX_EQ.current_type*/
  948. void r999make_call_1(T999* C,T0* a1,T0* a2,T0* a3){
  949. C->_target=a1;
  950. C->_feature_name=a2;
  951. C->_arguments=a3;
  952. }
  953. /*No:CALL_INFIX_EQ.is_manifest_string*/
  954. /*No:CALL_INFIX_EQ.us_eq*/
  955. /*No:CALL_INFIX_EQ.is_void*/
  956. /*No:CALL_INFIX_EQ.fz_dot*/
  957. void r999error(T0* a1,T0* a2){
  958. r683add_position(a1);
  959. r683error(((T683*)(oBC364eh)),a2);
  960. }
  961. /*No:CALL_INFIX_EQ.fatal_error*/
  962. void r999short_target(T999* C){
  963. r999bracketed_short(C);
  964. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  965. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  966. }/*]*/
  967. }
  968. /*No:CALL_INFIX_EQ.arg1*/
  969. /*No:TYPE_GENERIC.fz_is_invalid*/
  970. void r720short(T720* C){
  971. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  972. r720short_hook(C);
  973. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  974. }
  975. int r720has_creation(T720* C,T0* a1){
  976. int R=0;
  977. R=r605has_creation(((T605*)(r720base_class(C))),a1);
  978. return R;
  979. }
  980. /*No:TYPE_GENERIC.set_run_type_memory*/
  981. /*No:TYPE_GENERIC.is_anchored*/
  982. /*No:TYPE_GENERIC.is_array*/
  983. int r720is_a(T720* C,T0* a1){
  984. int R=0;
  985. T0* _t2=NULL;
  986. T0* _t1=NULL;
  987. int _i=0;
  988. /*IF*/if (X291is_none(a1)) {
  989. }
  990.  else if ((r720run_class(C))==((void*)(X291run_class(a1)))) {
  991. R=1;
  992. }
  993.  else if (X291is_generic(a1)) {
  994. /*IF*/if ((r720base_class(C))==((void*)(X291base_class(a1)))) {
  995. R=1;
  996. _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
  997. while (!((!(R))||((_i)==(0)))) {
  998. _t1=X291run_type(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i));
  999. _t2=X291run_type(r701item(((T701*)(X291generic_list(a1))),_i));
  1000. /*IF*/if (X291is_a(_t1,_t2)) {
  1001. _i=(_i)-(1);
  1002. }
  1003. else {
  1004. R=0;
  1005. /*[IRF3.6append*/{T0* b1=((T0*)ms59_470);
  1006. r7append(((T7*)(oBC683explanation)),b1);
  1007. }/*]*/
  1008. }
  1009. /*FI*/}
  1010. }
  1011.  else if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
  1012. R=r605is_a_vncg(((T605*)(r720base_class(C))),(T0*)C,a1);
  1013. }
  1014. /*FI*/}
  1015. else {
  1016. /*IF*/if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
  1017. R=1;
  1018. }
  1019. /*FI*/}
  1020. /*FI*//*IF*/if (!(R)) {
  1021. r683add_type((T0*)C,((T0*)ms71_470));
  1022. r683add_type(a1,((T0*)ms1_720));
  1023. }
  1024. /*FI*/return R;
  1025. }
  1026. T0* r720run_type(T720* C){
  1027. T0* R=NULL;
  1028. /*IF*/if (r720is_run_type(C)) {
  1029. R=(((T720*)C))->_run_type_memory/*16*/;
  1030. }
  1031. /*FI*/return R;
  1032. }
  1033. /*No:TYPE_GENERIC.is_pointer*/
  1034. /*No:TYPE_GENERIC.is_string*/
  1035. /*No:TYPE_GENERIC.is_like_feature*/
  1036. /*No:TYPE_GENERIC.is_like_current*/
  1037. void r720basic_checks(T720* C){
  1038. T0* _fgl=NULL;
  1039. T0* _bc=NULL;
  1040. _bc=r720base_class(C);
  1041. _fgl=(((T605*)((T605*)_bc)))->_formal_generic_list/*28*/;
  1042. /*IF*/if ((_fgl)==((void*)(NULL))) {
  1043. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
  1044. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1045. r7append(((T7*)(oBC683explanation)),b1);
  1046. }/*]*/
  1047. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_720);
  1048. r683fatal_error(((T683*)(oBC364eh)),b1);
  1049. }/*]*/
  1050. }
  1051.  else if ((/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/)!=(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) {
  1052. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
  1053. r683add_position((((T881*)((T881*)_fgl)))->_start_position/*0*/);
  1054. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
  1055. r683fatal_error(((T683*)(oBC364eh)),b1);
  1056. }/*]*/
  1057. }
  1058. /*FI*/}
  1059. void r720make(T720* C,T0* a1,T0* a2){
  1060. T0* _t=NULL;
  1061. int _i=0;
  1062. C->_base_class_name=a1;
  1063. C->_generic_list=a2;
  1064. r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)a1)))->_to_string/*0*/);
  1065. r7extend(((T7*)(oBC720tmp_mark)),'\133');
  1066. _i=1;
  1067. while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
  1068. _t=r701item(((T701*)a2),_i);
  1069. r7append(((T7*)(oBC720tmp_mark)),X291written_mark(_t));
  1070. _i=(_i)+(1);
  1071. /*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
  1072. r7extend(((T7*)(oBC720tmp_mark)),'\54');
  1073. }
  1074. /*FI*/}
  1075. r7extend(((T7*)(oBC720tmp_mark)),'\135');
  1076. C->_written_mark=r902item(oBC720tmp_mark);
  1077. }
  1078. T0* r720type_any(void){
  1079. if (fBC364type_any==0){
  1080. T0* R=NULL;
  1081. fBC364type_any=1;
  1082. {T669*n=malloc(sizeof(*n));
  1083. *n=M669;
  1084. r669make(n,NULL);
  1085. R=(T0*)n;
  1086. }
  1087. oBC364type_any=R;}
  1088. return oBC364type_any;}
  1089. /*No:TYPE_GENERIC.start_position*/
  1090. /*No:TYPE_GENERIC.fz_inako*/
  1091. /*No:TYPE_GENERIC.is_character*/
  1092. /*No:TYPE_GENERIC.written_mark*/
  1093. T0* r720to_runnable(T720* C,T0* a1){
  1094. T0* R=NULL;
  1095. T0* _rt=NULL;
  1096. T0* _t2=NULL;
  1097. T0* _t1=NULL;
  1098. T0* _rgl=NULL;
  1099. int _i=0;
  1100. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
  1101. /*IF*/if (r720is_written_runnable(C)) {
  1102. C->_run_type_memory=(T0*)C;
  1103. r720basic_checks(C);
  1104. R=(T0*)C;
  1105. }
  1106. else {
  1107. _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
  1108. _i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
  1109. while (!((_i)==(0))) {
  1110. _t1=r701item(((T701*)_rgl),_i);
  1111. _t2=X291to_runnable(_t1,a1);
  1112. /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
  1113. r683add_type(_t1,((T0*)ms72_470));
  1114. r683print_as_error(((T683*)(oBC364eh)));
  1115. _i=0;
  1116. }
  1117. else {
  1118. /*[IRF3.6put*/{T701* C1=((T701*)_rgl);
  1119. T0* b1=_t2;
  1120. int b2=_i;
  1121. ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
  1122. }/*]*/
  1123. }
  1124. /*FI*/_t2=X291run_type(_t2);
  1125. /*IF*/if (X291is_expanded(_t2)) {
  1126. r368set_at_run_time(((T368*)(X291run_class(_t2))));
  1127. }
  1128. /*FI*/_i=(_i)-(1);
  1129. }
  1130. {T720*n=malloc(sizeof(*n));
  1131. *n=M720;
  1132. r720make_runnable(n,(T0*)C,_rgl);
  1133. _rt=(T0*)n;
  1134. }
  1135. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
  1136. C->_run_type_memory=_rt;
  1137. R=(T0*)C;
  1138. }
  1139. else {
  1140. R=r720twin(C);
  1141. /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
  1142. /*]*/
  1143. }
  1144. /*FI*/}
  1145. /*FI*/}
  1146.  else if (r720is_written_runnable(C)) {
  1147. R=(T0*)C;
  1148. }
  1149. else {
  1150. _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
  1151. _i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
  1152. while (!((_i)==(0))) {
  1153. _t1=r701item(((T701*)_rgl),_i);
  1154. _t2=X291to_runnable(_t1,a1);
  1155. /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
  1156. r683add_type(_t1,((T0*)ms72_470));
  1157. r683print_as_error(((T683*)(oBC364eh)));
  1158. _i=0;
  1159. }
  1160. else {
  1161. /*[IRF3.6put*/{T701* C1=((T701*)_rgl);
  1162. T0* b1=_t2;
  1163. int b2=_i;
  1164. ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
  1165. }/*]*/
  1166. }
  1167. /*FI*/_t2=X291run_type(_t2);
  1168. /*IF*/if (X291is_expanded(_t2)) {
  1169. r368set_at_run_time(((T368*)(X291run_class(_t2))));
  1170. }
  1171. /*FI*/_i=(_i)-(1);
  1172. }
  1173. {T720*n=malloc(sizeof(*n));
  1174. *n=M720;
  1175. r720make_runnable(n,(T0*)C,_rgl);
  1176. _rt=(T0*)n;
  1177. }
  1178. R=r720twin(C);
  1179. /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
  1180. /*]*/
  1181. }
  1182. /*FI*/return R;
  1183. }
  1184. int r720is_run_type(T720* C){
  1185. int R=0;
  1186. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)!=((void*)(NULL))) {
  1187. R=1;
  1188. }
  1189.  else if (r720is_written_runnable(C)) {
  1190. C->_run_type_memory=(T0*)C;
  1191. r720basic_checks(C);
  1192. R=1;
  1193. }
  1194. /*FI*/return R;
  1195. }
  1196. /*No:TYPE_GENERIC.run_type_memory*/
  1197. /*No:TYPE_GENERIC.is_formal_generic*/
  1198. /*No:TYPE_GENERIC.generic_list*/
  1199. /*No:TYPE_GENERIC.is_real*/
  1200. int r720is_written_runnable(T720* C){
  1201. int R=0;
  1202. T0* _t=NULL;
  1203. int _i=0;
  1204. R=1;
  1205. _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
  1206. while (!((!(R))||((_i)==(0)))) {
  1207. _t=r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i);
  1208. /*IF*/if (X291is_run_type(_t)) {
  1209. /*IF*/if ((X291run_type(_t))==((void*)(_t))) {
  1210. }
  1211. else {
  1212. R=0;
  1213. }
  1214. /*FI*/}
  1215. else {
  1216. R=0;
  1217. }
  1218. /*FI*/_i=(_i)-(1);
  1219. }
  1220. return R;
  1221. }
  1222. T0* r720twin(T720* C){
  1223. T0* R=NULL;
  1224. R=malloc(sizeof(*C));
  1225. *((T720*)R)=*C;
  1226. return R;
  1227. }
  1228. /*No:TYPE_GENERIC.fz_bnga*/
  1229. /*No:TYPE_GENERIC.is_bit*/
  1230. T0* r720smallest_ancestor(T720* C,T0* a1){
  1231. T0* R=NULL;
  1232. T0* _rto=NULL;
  1233. _rto=X291run_type(a1);
  1234. /*IF*/if (X291is_none(a1)) {
  1235. R=(T0*)C;
  1236. }
  1237.  else if (X291is_any(_rto)) {
  1238. R=_rto;
  1239. }
  1240.  else if (X291is_a(_rto,r720run_type(C))) {
  1241. R=(((T720*)C))->_run_type_memory/*16*/;
  1242. }
  1243. else {
  1244. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1245. /*]*/
  1246. r51clear(((T51*)(oBC683positions)));
  1247. /*]*/
  1248. /*IF*/if (r720is_a(((T720*)(r720run_type(C))),_rto)) {
  1249. R=_rto;
  1250. }
  1251. else {
  1252. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1253. /*]*/
  1254. r51clear(((T51*)(oBC683positions)));
  1255. /*]*/
  1256. /*IF*/if (X291is_generic(_rto)) {
  1257. R=r720type_any();
  1258. }
  1259. else {
  1260. R=X291smallest_ancestor(_rto,(T0*)C);
  1261. }
  1262. /*FI*/}
  1263. /*FI*/}
  1264. /*FI*/return R;
  1265. }
  1266. /*No:TYPE_GENERIC.is_boolean*/
  1267. T0*oBC720tmp_mark=NULL;
  1268. /*No:TYPE_GENERIC.is_double*/
  1269. T0* r720run_class(T720* C){
  1270. T0* R=NULL;
  1271. /*IF*/if (r720is_run_type(C)) {
  1272. R=r604run_class((((T720*)C))->_run_type_memory/*16*/);
  1273. }
  1274. /*FI*/return R;
  1275. }
  1276. T0* r720run_time_mark(T720* C){
  1277. T0* R=NULL;
  1278. /*IF*/if (r720is_run_type(C)) {
  1279. R=(((T720*)((T720*)((((T720*)C))->_run_type_memory/*16*/))))->_written_mark/*12*/;
  1280. }
  1281. /*FI*/return R;
  1282. }
  1283. int r720is_a_in(T720* C,T0* a1,T0* a2){
  1284. int R=0;
  1285. T0* _ct=NULL;
  1286. T0* _t2=NULL;
  1287. T0* _t1=NULL;
  1288. /*IF*/if (((((T720*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  1289. R=1;
  1290. }
  1291. else {
  1292. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1293. _t1=r720to_runnable(C,_ct);
  1294. _t2=X291to_runnable(a1,_ct);
  1295. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1296. R=1;
  1297. }
  1298. else {
  1299. R=X291is_a(_t1,_t2);
  1300. }
  1301. /*FI*/}
  1302. /*FI*/return R;
  1303. }
  1304. T0* r720look_up_for(T720* C,T0* a1,T0* a2){
  1305. T0* R=NULL;
  1306. R=r605look_up_for(((T605*)(r720base_class(C))),a1,a2);
  1307. return R;
  1308. }
  1309. T0* r720expanded_initializer(T720* C){
  1310. T0* R=NULL;
  1311. /*IF*/if (r720is_expanded(C)) {
  1312. R=r605expanded_initializer(((T605*)(r720base_class(C))),(T0*)C);
  1313. }
  1314. /*FI*/return R;
  1315. }
  1316. /*No:TYPE_GENERIC.fz_dot*/
  1317. /*No:TYPE_GENERIC.is_generic*/
  1318. /*No:TYPE_GENERIC.fz_bga*/
  1319. /*No:TYPE_GENERIC.used_as_reference*/
  1320. int r720is_reference(T720* C){
  1321. int R=0;
  1322. R=!((((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/);
  1323. return R;
  1324. }
  1325. T0* r720base_class(T720* C){
  1326. T0* R=NULL;
  1327. T0* _bcn=NULL;
  1328. _bcn=(((T720*)C))->_base_class_name/*4*/;
  1329. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1330. R=r451base_class(((T451*)_bcn));
  1331. }
  1332. else {
  1333. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1334. r7append(((T7*)(oBC683explanation)),b1);
  1335. }/*]*/
  1336. r683add_type((T0*)C,((T0*)ms67_470));
  1337. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1338. }
  1339. /*FI*/return R;
  1340. }
  1341. /*No:TYPE_GENERIC.fatal_error*/
  1342. void r720short_hook(T720* C){
  1343. int _i=0;
  1344. r580a_class_name(((T580*)(oBC364short_print)),(((T720*)C))->_base_class_name/*4*/);
  1345. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_720),((T0*)ms4_720));
  1346. _i=1;
  1347. while (!((_i)>(r701count(((T701*)((((T720*)C))->_generic_list/*8*/)))))) {
  1348. X291short_hook(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i));
  1349. /*IF*/if ((_i)<(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) {
  1350. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_720),((T0*)ms6_720));
  1351. }
  1352. /*FI*/_i=(_i)+(1);
  1353. }
  1354. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_720),((T0*)ms8_720));
  1355. }
  1356. /*No:TYPE_GENERIC.is_any*/
  1357. /*No:TYPE_GENERIC.base_class_name*/
  1358. int r720is_expanded(T720* C){
  1359. int R=0;
  1360. R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/;
  1361. return R;
  1362. }
  1363. /*No:TYPE_GENERIC.is_basic_eiffel_expanded*/
  1364. /*No:TYPE_GENERIC.is_none*/
  1365. /*No:TYPE_GENERIC.is_integer*/
  1366. void r720make_runnable(T720* C,T0* a1,T0* a2){
  1367. T0* _t=NULL;
  1368. int _i=0;
  1369. C->_base_class_name=(((T720*)((T720*)a1)))->_base_class_name/*4*/;
  1370. C->_generic_list=a2;
  1371. r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_to_string/*0*/);
  1372. r7extend(((T7*)(oBC720tmp_mark)),'\133');
  1373. _i=1;
  1374. while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
  1375. _t=r701item(((T701*)a2),_i);
  1376. r7append(((T7*)(oBC720tmp_mark)),X291run_time_mark(_t));
  1377. _i=(_i)+(1);
  1378. /*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
  1379. r7extend(((T7*)(oBC720tmp_mark)),'\54');
  1380. }
  1381. /*FI*/}
  1382. r7extend(((T7*)(oBC720tmp_mark)),'\135');
  1383. C->_written_mark=r902item(oBC720tmp_mark);
  1384. C->_run_type_memory=(T0*)C;
  1385. }
  1386. /*No:STD_ERROR.make*/
  1387. T0*oBC817tmp_string=NULL;
  1388. /*No:STD_ERROR.flush*/
  1389. void r441put_string(T441* C,T0* a1){
  1390. int _i=0;
  1391. _i=1;
  1392. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  1393. /*[IRF3.6put_character*/{T441* C1=C;
  1394. char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1395. putc(b1,((FILE*)(stderr)));
  1396. }/*]*/
  1397. _i=(_i)+(1);
  1398. }
  1399. }
  1400. void r441put_integer(T441* C,int a1){
  1401. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
  1402. /*]*/
  1403. r2append_in(a1,oBC817tmp_string);
  1404. r441put_string(C,oBC817tmp_string);
  1405. }
  1406. /*No:STD_ERROR.put_character*/
  1407. /*No:STD_ERROR.put_new_line*/
  1408. void r64short(T64* C){
  1409. int _i=0;
  1410. _i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_lower/*16*/);
  1411. X361short(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
  1412. _i=(_i)+(1);
  1413. while (!((_i)>(/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/)))) {
  1414. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_64),((T0*)ms4_64));
  1415. X361short(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
  1416. _i=(_i)+(1);
  1417. }
  1418. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_64),((T0*)ms6_64));
  1419. X291short(/*X361*/((T0*)(((T886*)((T886*)(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),1))))))->_result_type/*20*/));
  1420. }
  1421. void r64make(T64* C,T0* a1,T0* a2){
  1422. int _i=0;
  1423. C->_name_list=a1;
  1424. _i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
  1425. while (!((_i)==(0))) {
  1426. /*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)))))))->_result_type)=(a2);
  1427. /*]*/
  1428. _i=(_i)-(1);
  1429. }
  1430. }
  1431. void r64append_in(T64* C,T0* a1){
  1432. int _i=0;
  1433. _i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_lower/*16*/);
  1434. while (!((_i)>(/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/)))) {
  1435. X535add_last(a1,/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
  1436. _i=(_i)+(1);
  1437. }
  1438. }
  1439. int r64count(T64* C){
  1440. int R=0;
  1441. R=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
  1442. return R;
  1443. }
  1444. /*No:DECLARATION_GROUP.name_list*/
  1445. void r420short(T420* C){
  1446. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_420),((T0*)ms6_420));
  1447. /*IF*/if (((((T420*)C))->_list/*4*/)!=((void*)(NULL))) {
  1448. r953short(((T953*)((((T420*)C))->_list/*4*/)));
  1449. }
  1450. /*FI*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms7_420),((T0*)ms8_420));
  1451. }
  1452. T0* r420add_comment(T420* C,T0* a1){
  1453. T0* R=NULL;
  1454. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1455. R=(T0*)C;
  1456. }
  1457. else {
  1458. {T529*n=malloc(sizeof(*n));
  1459. *n=M529;
  1460. r529make(n,(T0*)C,a1);
  1461. R=(T0*)n;
  1462. }
  1463. }
  1464. /*FI*/return R;
  1465. }
  1466. int r420to_integer(T420* C){
  1467. int R=0;
  1468. r420error(r420start_position(C),((T0*)ms69_470));
  1469. return R;
  1470. }
  1471. void r420bracketed_short(T420* C){
  1472. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1473. r420short(C);
  1474. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1475. }
  1476. int r420is_a(T420* C,T0* a1){
  1477. int R=0;
  1478. R=r709is_a(((T709*)((((T709*)((T709*)(r420result_type()))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
  1479. /*IF*/if (!(R)) {
  1480. r683add_position(r420start_position(C));
  1481. r420error(X662start_position(a1),((T0*)ms4_662));
  1482. }
  1483. /*FI*/return R;
  1484. }
  1485. /*No:E_STRIP.is_current*/
  1486. void r420make(T420* C,T0* a1,T0* a2){
  1487. /*IF*/if ((a2)!=((void*)(NULL))) {
  1488. {T953*n=malloc(sizeof(*n));
  1489. *n=M953;
  1490. r953make(n,a2);
  1491. C->_list=(T0*)n;
  1492. }
  1493. }
  1494. /*FI*/}
  1495. /*No:E_STRIP.fz_iinaiv*/
  1496. T0* r420type_any(void){
  1497. if (fBC364type_any==0){
  1498. T0* R=NULL;
  1499. fBC364type_any=1;
  1500. {T669*n=malloc(sizeof(*n));
  1501. *n=M669;
  1502. r669make(n,NULL);
  1503. R=(T0*)n;
  1504. }
  1505. oBC364type_any=R;}
  1506. return oBC364type_any;}
  1507. T0* r420start_position(T420* C){
  1508. T0* R=NULL;
  1509. /*IF*/if (((((T420*)C))->_list/*4*/)!=((void*)(NULL))) {
  1510. R=X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T420*)C))->_list/*4*/))))->_list/*0*/)),1)/*)*/);
  1511. }
  1512. /*FI*/return R;
  1513. }
  1514. /*No:E_STRIP.precedence*/
  1515. T0* r420to_runnable(T420* C,T0* a1){
  1516. T0* R=NULL;
  1517. r420error(r420start_position(C),((T0*)ms2_420));
  1518. return R;
  1519. }
  1520. int fBC420result_type=0;
  1521. T0*oBC420result_type=NULL;
  1522. T0* r420result_type(void){
  1523. if (fBC420result_type==0){
  1524. T0* R=NULL;
  1525. fBC420result_type=1;
  1526. {T709*n=malloc(sizeof(*n));
  1527. *n=M709;
  1528. r709make(n,NULL,r420type_any());
  1529. R=(T0*)n;
  1530. }
  1531. oBC420result_type=R;}
  1532. return oBC420result_type;}
  1533. /*No:E_STRIP.list*/
  1534. /*No:E_STRIP.is_manifest_string*/
  1535. /*No:E_STRIP.is_void*/
  1536. void r420error(T0* a1,T0* a2){
  1537. r683add_position(a1);
  1538. r683error(((T683*)(oBC364eh)),a2);
  1539. }
  1540. void r420short_target(T420* C){
  1541. r420short(C);
  1542. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1543. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1544. }/*]*/
  1545. }
  1546. void r517error_comparison(T517* C,T0* a1){
  1547. r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1548. /*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
  1549. r7append(((T7*)(oBC683explanation)),b1);
  1550. }/*]*/
  1551. /*[IRF3.6append*/{T0* b1=a1;
  1552. r7append(((T7*)(oBC683explanation)),b1);
  1553. }/*]*/
  1554. /*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
  1555. r7append(((T7*)(oBC683explanation)),b1);
  1556. }/*]*/
  1557. r683add_type((((T517*)C))->_current_type/*4*/,((T0*)ms67_470));
  1558. r683print_as_error(((T683*)(oBC364eh)));
  1559. }
  1560. /*No:CALL_INFIX_NEQ.arguments*/
  1561. void r517short(T517* C){
  1562. /*IF*/if ((X662precedence((((T517*)C))->_target/*8*/))==(13)) {
  1563. X662short((((T517*)C))->_target/*8*/);
  1564. /*[IRF3.6short_print_feature_name*/{T517* C1=C;
  1565. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T517*)C1))->_feature_name/*20*/);
  1566. }/*]*/
  1567. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))==(13)) {
  1568. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1569. }
  1570.  else if ((6)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/))) {
  1571. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1572. }
  1573. else {
  1574. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1575. }
  1576. /*FI*/}
  1577.  else if ((X662precedence((((T517*)C))->_target/*8*/))<(6)) {
  1578. X662bracketed_short((((T517*)C))->_target/*8*/);
  1579. /*[IRF3.6short_print_feature_name*/{T517* C1=C;
  1580. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T517*)C1))->_feature_name/*20*/);
  1581. }/*]*/
  1582. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1583. }
  1584. else {
  1585. X662short((((T517*)C))->_target/*8*/);
  1586. /*[IRF3.6short_print_feature_name*/{T517* C1=C;
  1587. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T517*)C1))->_feature_name/*20*/);
  1588. }/*]*/
  1589. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1590. }
  1591. /*FI*/}
  1592. T0* r517add_comment(T517* C,T0* a1){
  1593. T0* R=NULL;
  1594. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1595. R=(T0*)C;
  1596. }
  1597. else {
  1598. {T529*n=malloc(sizeof(*n));
  1599. *n=M529;
  1600. r529make(n,(T0*)C,a1);
  1601. R=(T0*)n;
  1602. }
  1603. }
  1604. /*FI*/return R;
  1605. }
  1606. int r517to_integer(T517* C){
  1607. int R=0;
  1608. r517error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1609. return R;
  1610. }
  1611. void r517bracketed_short(T517* C){
  1612. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1613. r517short(C);
  1614. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1615. }
  1616. int r517is_a(T517* C,T0* a1){
  1617. int R=0;
  1618. R=X291is_a(X291run_type((((T517*)C))->_result_type/*12*/),X291run_type(X662result_type(a1)));
  1619. /*IF*/if (!(R)) {
  1620. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1621. r517error(X662start_position(a1),((T0*)ms4_662));
  1622. }
  1623. /*FI*/return R;
  1624. }
  1625. /*No:CALL_INFIX_NEQ.is_current*/
  1626. T0* r517type_boolean(void){
  1627. if (fBC364type_boolean==0){
  1628. T0* R=NULL;
  1629. fBC364type_boolean=1;
  1630. {T707*n=malloc(sizeof(*n));
  1631. *n=M707;
  1632. r707make(n,NULL);
  1633. R=(T0*)n;
  1634. }
  1635. oBC364type_boolean=R;}
  1636. return oBC364type_boolean;}
  1637. void r517make(T517* C,T0* a1,T0* a2,T0* a3){
  1638. T0* _eal=NULL;
  1639. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1640. r683add_position(a2);
  1641. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1642. r683fatal_error(((T683*)(oBC364eh)),b1);
  1643. }/*]*/
  1644. }
  1645. /*FI*/{T454*n=malloc(sizeof(*n));
  1646. *n=M454;
  1647. r454make(n,((T0*)ms1_517),a2);
  1648. C->_feature_name=(T0*)n;
  1649. }
  1650. {T431*n=malloc(sizeof(*n));
  1651. *n=M431;
  1652. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1653. /*]*/
  1654. _eal=(T0*)n;
  1655. }
  1656. r517make_call_1(C,a1,(((T517*)C))->_feature_name/*20*/,_eal);
  1657. }
  1658. /*No:CALL_INFIX_NEQ.nb_errors*/
  1659. void r517to_runnable_equal_not_equal(T517* C,T0* a1){
  1660. T0* _at=NULL;
  1661. T0* _tt=NULL;
  1662. T0* _a=NULL;
  1663. T0* _t=NULL;
  1664. C->_current_type=a1;
  1665. _t=X662to_runnable((((T517*)C))->_target/*8*/,a1);
  1666. /*IF*/if ((_t)==((void*)(NULL))) {
  1667. r517error(X662start_position((((T517*)C))->_target/*8*/),((T0*)ms1_841));
  1668. }
  1669. else {
  1670. C->_target=_t;
  1671. }
  1672. /*FI*/_a=r431to_runnable(((T431*)((((T517*)C))->_arguments/*16*/)),a1);
  1673. /*IF*/if ((_a)!=((void*)(NULL))) {
  1674. C->_arguments=_a;
  1675. }
  1676. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1677. _tt=X291run_type(X662result_type((((T517*)C))->_target/*8*/));
  1678. _at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/));
  1679. /*IF*/if (X291is_none(_tt)) {
  1680. /*IF*/if (X291is_expanded(_at)) {
  1681. X291used_as_reference(_at);
  1682. }
  1683. /*FI*/}
  1684.  else if (X291is_none(_at)) {
  1685. /*IF*/if (X291is_expanded(_tt)) {
  1686. X291used_as_reference(_tt);
  1687. }
  1688. /*FI*/}
  1689.  else if (X291is_reference(_tt)) {
  1690. /*IF*/if (X291is_reference(_at)) {
  1691. /*IF*/if (X291is_a(_tt,_at)) {
  1692. }
  1693. else {
  1694. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1695. /*]*/
  1696. r51clear(((T51*)(oBC683positions)));
  1697. /*]*/
  1698. /*IF*/if (X291is_a(_at,_tt)) {
  1699. }
  1700. else {
  1701. r517error_comparison(C,((T0*)ms2_841));
  1702. }
  1703. /*FI*/}
  1704. /*FI*/}
  1705.  else if (!(X291is_a(_at,_tt))) {
  1706. r517error_comparison(C,((T0*)ms3_841));
  1707. }
  1708. else {
  1709. X291used_as_reference(_at);
  1710. }
  1711. /*FI*/}
  1712. else {
  1713. /*IF*/if (X291is_expanded(_at)) {
  1714. /*IF*/if (X291is_basic_eiffel_expanded(_at)) {
  1715. /*IF*/if (X291is_a(_tt,_at)) {
  1716. }
  1717. else {
  1718. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1719. /*]*/
  1720. r51clear(((T51*)(oBC683positions)));
  1721. /*]*/
  1722. /*IF*/if (X291is_a(_at,_tt)) {
  1723. }
  1724. else {
  1725. r517error_comparison(C,((T0*)ms4_841));
  1726. }
  1727. /*FI*/}
  1728. /*FI*/}
  1729.  else if (X291is_bit(_tt)) {
  1730. r517bit_limitation(C,_tt,_at);
  1731. }
  1732.  else if (!(X291is_a(_at,_tt))) {
  1733. r517error_comparison(C,((T0*)ms5_841));
  1734. }
  1735. /*FI*/}
  1736.  else if (!(X291is_a(_tt,_at))) {
  1737. r517error_comparison(C,((T0*)ms6_841));
  1738. }
  1739. else {
  1740. X291used_as_reference(_tt);
  1741. }
  1742. /*FI*/}
  1743. /*FI*/}
  1744. /*FI*/}
  1745. /*No:CALL_INFIX_NEQ.feature_name*/
  1746. /*No:CALL_INFIX_NEQ.fz_iinaiv*/
  1747. /*No:CALL_INFIX_NEQ.start_position*/
  1748. /*No:CALL_INFIX_NEQ.target*/
  1749. /*No:CALL_INFIX_NEQ.precedence*/
  1750. T0* r517to_runnable(T517* C,T0* a1){
  1751. T0* R=NULL;
  1752. /*IF*/if (((((T517*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1753. r517to_runnable_equal_not_equal(C,a1);
  1754. C->_result_type=r517type_boolean();
  1755. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1756. R=(T0*)C;
  1757. }
  1758. /*FI*/}
  1759. else {
  1760. {T517*n=malloc(sizeof(*n));
  1761. *n=M517;
  1762. r517make(n,(((T517*)C))->_target/*8*/,(((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T517*)C))->_arguments/*16*/)))/*)*/);
  1763. R=(T0*)n;
  1764. }
  1765. R=r517to_runnable(((T517*)R),a1);
  1766. }
  1767. /*FI*/return R;
  1768. }
  1769. /*No:CALL_INFIX_NEQ.short_print_feature_name*/
  1770. /*No:CALL_INFIX_NEQ.result_type*/
  1771. /*No:CALL_INFIX_NEQ.operator*/
  1772. /*No:CALL_INFIX_NEQ.atomic_precedence*/
  1773. void r517bit_limitation(T517* C,T0* a1,T0* a2){
  1774. T0* _b2=NULL;
  1775. T0* _b1=NULL;
  1776. _b1=a1;
  1777. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  1778. case 549: case 558: 
  1779. break;
  1780. default:
  1781. _b1=NULL;
  1782. };_b2=a2;
  1783. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  1784. case 549: case 558: 
  1785. break;
  1786. default:
  1787. _b2=NULL;
  1788. };/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
  1789. r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1790. /*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
  1791. r7append(((T7*)(oBC683explanation)),b1);
  1792. }/*]*/
  1793. r683add_type(_b1,((T0*)ms10_841));
  1794. r683add_type(_b2,((T0*)ms11_841));
  1795. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1796. }
  1797. /*FI*/}
  1798. /*No:CALL_INFIX_NEQ.current_type*/
  1799. void r517make_call_1(T517* C,T0* a1,T0* a2,T0* a3){
  1800. C->_target=a1;
  1801. C->_feature_name=a2;
  1802. C->_arguments=a3;
  1803. }
  1804. /*No:CALL_INFIX_NEQ.is_manifest_string*/
  1805. /*No:CALL_INFIX_NEQ.is_void*/
  1806. /*No:CALL_INFIX_NEQ.fz_dot*/
  1807. void r517error(T0* a1,T0* a2){
  1808. r683add_position(a1);
  1809. r683error(((T683*)(oBC364eh)),a2);
  1810. }
  1811. /*No:CALL_INFIX_NEQ.fatal_error*/
  1812. void r517short_target(T517* C){
  1813. r517bracketed_short(C);
  1814. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1815. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1816. }/*]*/
  1817. }
  1818. /*No:CALL_INFIX_NEQ.arg1*/
  1819.  
  1820.